package com.ruoyi.webs.unit;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.webs.unit.domain.HzUnit;
import com.ruoyi.webs.unit.service.IHzUnitService;
import com.ruoyi.webs.unitcategory.domain.HzUnitCategory;
import com.ruoyi.webs.unitcategory.service.IHzUnitCategoryService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;


/**
 * @author 7070MFF
 */
@Controller
@RequestMapping({""})
public class HzUnitFrontController
        extends BaseController {
    @Autowired
    private IHzUnitService hzUnitService;
    @Autowired
    private IHzUnitCategoryService hzUnitCategoryService;
//    @Autowired
//    private OfficeService officeService;
//    @Autowired
//    private HzPolicyInsuranceService hzPolicyInsuranceService;
//    @Autowired
//    private HzHelpNoticeService hzHelpNoticeService;
//    @Autowired
//    private HzHelpQuestionService hzHelpQuestionService;
//    @Autowired
//    private HzSequenceService hzSequenceService;

//    @ModelAttribute
//    public HzUnit get(@RequestParam(required = false) String id) {
//        HzUnit entity = null;
//        if (StringUtils.isNotBlank(id)) {
//            entity = this.hzUnitService.get(id);
//        }
//        if (entity == null) {
//            entity = new HzUnit();
//        }
//        return entity;
//    }


    @RequestMapping({"/index"})
    public String index(ModelMap model, HttpServletRequest request, HttpServletResponse response) {
//        HttpSession session = request.getSession();
//        String unitId = (String) session.getAttribute("currentUnit");
//        HzUnit hzUnit = this.hzUnitService.get(unitId);
//        session.setAttribute("hzUnit", hzUnit);

//        List<HzPolicyInsurance> renewalPolicys = this.hzPolicyInsuranceService.getRenewalPolicy(unitId, null);
//        model.addAttribute("renewalPolicys", renewalPolicys);
//
//        HzHelpNotice hzHelpNotice = new HzHelpNotice();
//        Page<HzHelpNotice> hzHelpNoticePage = new Page(request, response);
//        hzHelpNoticePage.setPageNo(1);
//        hzHelpNoticePage.setPageSize(5);
//        Page<HzHelpNotice> hzHelpNotices = this.hzHelpNoticeService.findPageUncheck(hzHelpNoticePage, hzHelpNotice);
//        model.addAttribute("hzHelpNotices", hzHelpNotices);
        return "/index";
    }
    @RequestMapping({"/login"})
    public String login() {
//        HzHelpQuestion hzHelpQuestion = new HzHelpQuestion();
//        hzHelpQuestion.setIdType("0");
//        hzHelpQuestion.setCategoryid(Long.valueOf(0L));
//        List<HzHelpQuestion> questions = this.hzHelpQuestionService.findData(hzHelpQuestion);
//        model.addAttribute("questions", questions);
//        hzHelpQuestion.setCategoryid(Long.valueOf(2L));
//        List<HzHelpQuestion> downloads = this.hzHelpQuestionService.findData(hzHelpQuestion);
//        model.addAttribute("downloads", downloads);
        return "/login";
    }

    @RequestMapping({"/Member"})
    public String Member() {


//        startPage();
//        List<HzUnitCategory> list = hzUnitCategoryService.selectHzUnitCategoryList(hzUnitCategory);
//        return getDataTable(list);
        return "/member";
    }
//
//
//    @RequestMapping({"/Unit/RegisterSubmit"})
//    @ResponseBody
//    public AjaxJson register(HzUnit hzUnit) {
//        AjaxJson j = new AjaxJson();
//        j.setSuccess(false);
//
//        if (StringUtils.isEmpty(hzUnit.getCategoryID())) {
//            j.setMsg("请选择单位分类");
//            return j;
//        }
//        if (StringUtils.isEmpty(hzUnit.getOrganizeID())) {
//            j.setMsg("请选择所属机构");
//            return j;
//        }
//        if (StringUtils.isEmpty(hzUnit.getName())) {
//            System.out.println("name:" + hzUnit.getName());
//            j.setMsg("请填写单位名称");
//            return j;
//        }
//        if (StringUtils.isEmpty(hzUnit.getOrganization())) {
//            j.setMsg("请填写统一社会信用代码");
//            return j;
//        }
//        StringUtils.isEmpty(hzUnit.getOrganizationFile());
//
//
//        if (StringUtils.isEmpty(hzUnit.getContact())) {
//            j.setMsg("请填写经办人姓名");
//            return j;
//        }
//        if (StringUtils.isEmpty(hzUnit.getMobile())) {
//            j.setMsg("请填写经办人联系手机");
//            return j;
//        }
//        if (StringUtils.isEmpty(hzUnit.getEmail())) {
//            j.setMsg("请填写经办人联系邮箱");
//            return j;
//        }
//        if (StringUtils.isEmpty(hzUnit.getRegionidName())) {
//            j.setMsg("请填写所在区域");
//            return j;
//        }
//        if (StringUtils.isEmpty(hzUnit.getAddress())) {
//            j.setMsg("请填写经办人详细地址");
//            return j;
//        }
//
//
//        if (hzUnit.getName().length() > 200) {
//            j.setMsg("单位名称超过最大长度");
//            return j;
//        }
//        if (!RegisterUtils.test("2", hzUnit.getOrganization()).booleanValue()) {
//            j.setMsg("机构代码格式不正确！");
//            return j;
//        }
//        if (hzUnit.getContact().length() > 20) {
//            j.setMsg("经办人超过最大长度");
//            return j;
//        }
//        if (!RegisterUtils.test("7", hzUnit.getMobile()).booleanValue()) {
//            j.setMsg("联系手机填写错误");
//            return j;
//        }
//
//
//        if (!RegisterUtils.test("12", hzUnit.getEmail()).booleanValue() || hzUnit.getEmail().length() > 200) {
//            j.setMsg("邮箱填写错误");
//            return j;
//        }
//        if (hzUnit.getRegionidName().length() > 200) {
//            j.setMsg("所在区域超过最大长度");
//            return j;
//        }
//        if (hzUnit.getAddress().length() > 500) {
//            j.setMsg("详细地址超过最大长度");
//            return j;
//        }
//
//
//        HzUnit getByName = this.hzUnitService.getByName(hzUnit.getId(), hzUnit.getName().trim());
//
//        HzUnit getByOrganization = this.hzUnitService.getByOrganization(hzUnit.getId(), hzUnit.getOrganization().trim());
//        if (getByOrganization != null) {
//            String msg = "组织机构代码：" + getByOrganization.getOrganization() + "已登记，不能重复登记";
//            j.setMsg(msg);
//            return j;
//        }
//        if (getByName != null) {
//            String msg = "单位名称：" + getByName.getName() + "已登记，不能重复登记";
//            j.setMsg(msg);
//            return j;
//        }
//
//
//        int account = this.hzSequenceService.getSequenceNo("seq_unit");
//
//        hzUnit.setAccount((new StringBuilder(String.valueOf(account))).toString());
//
//        String password = CreateAccountUtils.createPassword();
//        String pwd = CryptoUtil.encrypt(password);
//        hzUnit.setPassword(pwd);
//
//        hzUnit.setStatus("0");
//
//        hzUnit.setCategoryName(this.hzUnitCategoryService.get(hzUnit.getCategoryID()).getName());
//        hzUnit.setOrganizeName(((Office) this.officeService.get(hzUnit.getOrganizeID())).getName());
//        this.hzUnitService.save((HzUnit) hzUnit);
//        j.setMsg("提交成功，等待审核");
//        j.setSuccess(true);
//        return j;
//    }
//
//
//    @RequestMapping({"/account"})
//    public String account(ModelMap model, HttpServletRequest request) {
//        HttpSession session = request.getSession();
//        String unitId = (String) session.getAttribute("currentUnit");
//        HzUnit hzUnit = this.hzUnitService.get(unitId);
//        model.addAttribute("hzUnit", hzUnit);
//        return "front/account";
//    }
//
//
//    @RequestMapping({"/getAccount"})
//    public String getAccount(ModelMap model, HzUnit hzUnit, HttpServletRequest request) {
//        List<HzUnit> units = this.hzUnitService.getByNameOrOrganization(hzUnit);
//        if (units.size() > 0) {
//            HzUnit hzUnit2 = units.get(0);
//            model.addAttribute("hzUnit", hzUnit2);
//        }
//        return "front/getAccount";
//    }
//
//
//    @RequestMapping({"/getUnitPassword"})
//    public String getUnitPassword(ModelMap model, HzUnit hzUnit, HttpServletRequest request) {
//        return "front/getUnitPassword";
//    }
//
//
//    @RequestMapping({"/organizationFindUnit"})
//    @ResponseBody
//    public AjaxJson organizationFindUnit(HzUnit hzUnit, HttpServletRequest request) {
//        AjaxJson j = new AjaxJson();
//
//        HzUnit unit = this.hzUnitService.organizationFindUnit(hzUnit);
//        if (unit != null) {
//            if ("1".equals(unit.getStatus())) {
//                j.setSuccess(true);
//                j.put("unit", unit);
//                return j;
//            }
//            j.setSuccess(false);
//            j.setMsg("该账号已被注销。");
//            return j;
//        }
//
//        j.setSuccess(false);
//        j.setMsg("请输入正确的账号及组织机构代码。");
//        return j;
//    }
//
//
//    @RequestMapping({"/mobileGetPassword"})
//    public String mobileForgetPassword(ModelMap model, HzUnit hzUnit, HttpServletRequest request) {
//        return "front/mobileForgetPassword";
//    }
//
//
//    @RequestMapping({"/emailGetPassword"})
//    public String emailGetPassword(ModelMap model, HzUnit hzUnit, HttpServletRequest request) {
//        return "front/emailForgetPassword";
//    }
//
//
//    @RequestMapping({"/contactGetPassword"})
//    public String contactGetPassword(ModelMap model, HzUnit hzUnit, HttpServletRequest request) {
//        return "front/contactForgetPassword";
//    }
//
//
//    @RequestMapping({"/resetPasswordForm"})
//    public String resetPasswordForm(ModelMap model, HttpServletRequest request) {
//        HttpSession session = request.getSession();
//        String unitId = (String) session.getAttribute("currentUnit");
//        HzUnit hzUnit = this.hzUnitService.get(unitId);
//        model.addAttribute("hzUnit", hzUnit);
//        return "front/resetPassword";
//    }
//
//
//    @RequestMapping({"/weChat"})
//    public String weChat(ModelMap model, HttpServletRequest request) {
//        HttpSession session = request.getSession();
//        String unitId = (String) session.getAttribute("currentUnit");
//        HzUnit hzUnit = this.hzUnitService.get(unitId);
//        model.addAttribute("hzUnit", hzUnit);
//        return "front/weChat";
//    }
//
//
//    @RequestMapping({"/loginIndex"})
//    public String loginIndex(ModelMap model, HzUnit hzUnit, HttpServletRequest request) {
//        HzHelpQuestion hzHelpQuestion = new HzHelpQuestion();
//        hzHelpQuestion.setIdType("0");
//        hzHelpQuestion.setCategoryid(Long.valueOf(0L));
//        List<HzHelpQuestion> questions = this.hzHelpQuestionService.findData(hzHelpQuestion);
//        model.addAttribute("questions", questions);
//        hzHelpQuestion.setCategoryid(Long.valueOf(2L));
//        List<HzHelpQuestion> downloads = this.hzHelpQuestionService.findData(hzHelpQuestion);
//        model.addAttribute("downloads", downloads);
//
//        return "front/loginIndex";
//    }
//
//
//    @ResponseBody
//    @RequestMapping({"/login"})
//    public AjaxJson login(ModelMap model, HzUnit hzUnit, HttpServletRequest request) {
//        AjaxJson j = new AjaxJson();
//        HttpSession session = request.getSession();
//        String message = "";
//        boolean flag = false;
//
//        String account = hzUnit.getAccount();
//        String password = hzUnit.getPassword();
//        String validateCode = hzUnit.getValidateCode();
//        String rememberMe = hzUnit.getRememberMe();
//        if (StringUtils.isNotBlank(validateCode)) {
//            if (validateCode.equalsIgnoreCase(session.getAttribute("CHECKCODE_SERVER").toString())) {
//                if (StringUtils.isNotBlank(account)) {
//                    if (StringUtils.isNotBlank(password)) {
//                        hzUnit = this.hzUnitService.doLogin(account, password);
//                        if (hzUnit != null) {
//                            session.setAttribute("currentUnit", hzUnit.getId());
//                            message = "登录成功！";
//                            flag = true;
//
//
//                        } else {
//
//
//                            flag = false;
//                            message = "单位账号或密码输入错误！";
//                        }
//                    } else {
//                        flag = false;
//                        message = "密码为空！";
//                    }
//                } else {
//                    flag = false;
//                    message = "单位账户为空！";
//                }
//            } else {
//                flag = false;
//                message = "验证码错误！";
//            }
//        } else {
//            flag = false;
//            message = "验证码为空！";
//        }
//        session.removeAttribute("CHECKCODE_SERVER");
//        j.setSuccess(flag);
//        j.setMsg(message);
//        j.put("hzUnit", hzUnit);
//        return j;
//    }
//
//
//    @RequestMapping({"loginOut"})
//    public String loginOut(HttpServletRequest request, ModelMap model) {
//        HttpSession session = request.getSession();
//        session.removeAttribute("currentUnit");
//        session.removeAttribute("hzUnit");
//        HzHelpQuestion hzHelpQuestion = new HzHelpQuestion();
//        hzHelpQuestion.setIdType("0");
//        hzHelpQuestion.setCategoryid(Long.valueOf(0L));
//        List<HzHelpQuestion> questions = this.hzHelpQuestionService.findData(hzHelpQuestion);
//        model.addAttribute("questions", questions);
//        hzHelpQuestion.setCategoryid(Long.valueOf(2L));
//        List<HzHelpQuestion> downloads = this.hzHelpQuestionService.findData(hzHelpQuestion);
//        model.addAttribute("downloads", downloads);
//        return "front/loginIndex";
//    }
//
//
//    @ResponseBody
//    @RequestMapping({"save"})
//    public AjaxJson save(HzUnit hzUnit, Model model) throws Exception {
//        AjaxJson j = new AjaxJson();
//
//
//        String errMsg = beanValidator(hzUnit, new Class[0]);
//        if (StringUtils.isNotBlank(errMsg)) {
//            j.setSuccess(false);
//            j.setMsg(errMsg);
//            return j;
//        }
//
//        if (StringUtils.isNotEmpty(hzUnit.getCategoryID())) {
//            hzUnit.setCategoryName(this.hzUnitCategoryService.get(hzUnit.getCategoryID()).getName());
//        }
//        if (StringUtils.isNotEmpty(hzUnit.getOrganizeID())) {
//            hzUnit.setOrganizeName(((Office) this.officeService.get(hzUnit.getOrganizeID())).getName());
//        }
//
//        this.hzUnitService.save((HzUnit) hzUnit);
//        j.setSuccess(true);
//        j.setMsg("操作成功");
//        return j;
//    }
//
//
//    @ResponseBody
//    @RequestMapping({"resetPassword"})
//    public AjaxJson resetPassword(HzUnit hzUnit, Model model) throws Exception {
//        AjaxJson j = new AjaxJson();
//
//
//        try {
//            String errMsg = beanValidator(hzUnit, new Class[0]);
//            if (StringUtils.isNotBlank(errMsg)) {
//                j.setSuccess(false);
//                j.setMsg(errMsg);
//                return j;
//            }
//
//            String id = hzUnit.getId();
//            String oldpassword = hzUnit.getOldpassword();
//            String newpassword = hzUnit.getNewpassword();
//            String confirmpassword = hzUnit.getConfirmpassword();
//            if (StringUtils.isEmpty(oldpassword)) {
//                j.setSuccess(false);
//                j.setMsg("请输入旧密码");
//                return j;
//            }
//            boolean checkFlag = this.hzUnitService.checkPassword(id, oldpassword);
//            if (!checkFlag) {
//                j.setSuccess(checkFlag);
//                j.setMsg("旧密码不正确");
//                return j;
//            }
//            if (StringUtils.isEmpty(newpassword)) {
//                j.setSuccess(false);
//                j.setMsg("请输入新密码");
//                return j;
//            }
//            if (StringUtils.isEmpty(confirmpassword)) {
//                j.setSuccess(false);
//                j.setMsg("请输入确认密码");
//                return j;
//            }
//            if (!StringUtils.equals(newpassword, confirmpassword)) {
//                j.setSuccess(false);
//                j.setMsg("确认密码和新密码不一致");
//                return j;
//            }
//            this.hzUnitService.updateNewPassword(id, confirmpassword);
//            j.setSuccess(true);
//            return j;
//
//
//        } catch (Exception e) {
//            j.setSuccess(false);
//            j.setMsg("系统出错了");
//            return j;
//        }
//    }
//
//
//    @RequestMapping({"/unitPassword"})
//    public String unitPassword(ModelMap model, HzUnit hzUnit, HttpServletRequest request) {
//        model.addAttribute("hzUnit", hzUnit);
//        return "front/updateUnitPassword";
//    }
//
//
//    @ResponseBody
//    @RequestMapping({"updateUnitPassword"})
//    public AjaxJson updateUnitPassword(HzUnit hzUnit, Model model) throws Exception {
//        AjaxJson j = new AjaxJson();
//
//        try {
//            String id = hzUnit.getId();
//            String oldpassword = hzUnit.getOldpassword();
//            String newpassword = hzUnit.getNewpassword();
//            String confirmpassword = hzUnit.getConfirmpassword();
//            if (StringUtils.isEmpty(oldpassword)) {
//                j.setSuccess(false);
//                j.setMsg("请输入旧密码");
//                return j;
//            }
//            boolean checkFlag = this.hzUnitService.checkPassword(id, oldpassword);
//            if (!checkFlag) {
//                j.setSuccess(checkFlag);
//                j.setMsg("旧密码不正确");
//                return j;
//            }
//            if (StringUtils.isEmpty(newpassword)) {
//                j.setSuccess(false);
//                j.setMsg("请输入新密码");
//                return j;
//            }
//            if (StringUtils.isEmpty(confirmpassword)) {
//                j.setSuccess(false);
//                j.setMsg("请输入确认密码");
//                return j;
//            }
//            if (!StringUtils.equals(newpassword, confirmpassword)) {
//                j.setSuccess(false);
//                j.setMsg("确认密码和新密码不一致");
//                return j;
//            }
//            this.hzUnitService.updateNewPassword(id, confirmpassword);
//            j.setSuccess(true);
//            return j;
//
//
//        } catch (Exception e) {
//            j.setSuccess(false);
//            j.setMsg("系统出错了");
//            return j;
//        }
//    }
//
//
//    @RequestMapping({"viewUnitImages"})
//    public String viewUnitImages(String fileurl, Model model) {
//        model.addAttribute("fileurl", fileurl);
//        return "front/hzImgView";
//    }
}